class Person {
  //没有 public、private 之类的访问权限控制符，默认情况下，所有的符号都是公开的。
  // 如果我们不想某个变量对外部可见，可以使用下划线开头来给变量命名。

  //所有的变量都会隐世的定义setter方法，非空的变量会定义getter方法，可以不再自己定义get，set方法
  String name;
  int _age;
  int _sex; //0男  1女
  //默认构造函数
//  Person() {}

  //初始化
//  Person(String name, int age, int sex) {
//    this.name = name;
//    this._age = age;
//    this._sex = sex;
//  }

  //简化的初始化,自动赋值
//  Person(this.name, this._age, this._sex) {}

  //  使用初始化列表（initializer list）对对象进行初始化
  //系统会自动辨别，第一个age是this.age,第二个age是形参age
  Person(String name, int age, int sex)
      :name = name,
        _age = age,
        _sex = sex {}


  //  get方法
//  String getName() {
//    return name;
//  }
//
//  int getAge() {
//    return _age;
//  }

  String get getName => name;

  int get age => _age;

  int get sex {
    return _sex;
  }

  //set方法
//  void setName(String name) {
//    this.name = name;
//  }
//
//  void setAge(int age) {
//    this._age = age;
//  }

  void set setName(String name) => this.name = name;

  void set age(int age) => this._age = age;

  void set sex(int sex) {
    this._sex = sex;
  }


}